package tp1.datos;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

import tp1.presentacion.modelo.Provincia;

public class ProvinciaDAO implements DAO{
	public void agregar(Object ob) {
		Provincia prov = (Provincia)ob;
		Conexion con = new Conexion();
		String sql = "insert into provincias (nom_prov) values(?)";
		try {
			PreparedStatement ps = con.getConexion().prepareStatement(sql);
			ps.setString(1, prov.getNombre());
			ps.executeUpdate();
		} catch(SQLException sqlEx) {
			sqlEx.printStackTrace();
		} finally {
			try {
				con.getConexion().close();
			} catch (SQLException se) {
				se.printStackTrace();
			}
		}
	}
	
	public ArrayList<Provincia> getTodos() {
		ArrayList<Provincia> provs = new ArrayList<Provincia>();
		Conexion con = new Conexion();
		String sql = "select * from provincias;";
		try {
			Statement st = con.getConexion().createStatement();
			ResultSet rs = st.executeQuery(sql);
			while(rs.next()) {
				int cod = rs.getInt("cod_prov");
				String nom = rs.getString("nom_prov");
				Provincia prAct = new Provincia();
				prAct.setCodigo(cod);
				prAct.setNombre(nom);
				provs.add(prAct);
			}
		} catch(SQLException sqlEx) {
			sqlEx.printStackTrace();
		}
		return provs;
	}
	
	public Provincia getUno(int id) {
		Provincia prov = new Provincia();
		Conexion con = new Conexion();
		String sql = "select * from provincias where cod_prov = ?;";
		try {
			PreparedStatement pst = con.getConexion().prepareStatement(sql);
			pst.setInt(1, id);
			ResultSet rst = pst.executeQuery();
			if(rst.next()) {
				int cod = rst.getInt("cod_prov");
				String nom = rst.getString("nom_prov");
				prov.setCodigo(cod);
				prov.setNombre(nom);
			}				
		} catch(SQLException sqlEx) {
			sqlEx.printStackTrace();
		}
		return prov;
	}
}